package hot100;

/**
 * 21. 合并两个有序链表
 */
public class mergeTwoLists {
    ListNode listNode;

    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        return code(l1, l2, listNode);
    }

    public ListNode code(ListNode l1, ListNode l2, ListNode listNodeNext) {
        if (l1 == null || l2 == null) {
            if (l1 != null) {
                listNodeNext = l1;
            }
            if (l2 != null) {
                listNodeNext = l2;
            }
            return listNodeNext;
        }
        if (l1.val < l2.val) {
            listNodeNext = new ListNode(l1.val);
            listNodeNext.next = code(l1.next, l2, listNodeNext.next);
        } else {
            listNodeNext = new ListNode(l2.val);
            listNodeNext.next = code(l1, l2.next, listNodeNext.next);
        }
        return listNodeNext;
    }
}
